"""
文件：
    一、文件操作的基本步骤
        打开文件 -》 操作文件（读/写） -》 关闭文件

    二、打开文件： open()
        用 open(文件路径, 模式) 打开文件，返回一个文件对象
        常用模式：
            r：只读（默认模式，文件需存在）
            w：写入（覆盖原有内容，文件不存在则创建）
            a：追加（在文件末尾添加内容，文件不存在则创建）
            x：创建新文件（文件存在则报错）
            b：二进制模式（例如 rb 或 wb）
            +：读写模式（例如 r+ 可读写）

    三、读取文件内容
        1. 读取全部内容：read()
        2. 逐行读取：readline()
        3. 读取所有行：readlines()

    四、写入文件内容
        1.写入字符串：write()
        2.写入多行：writelines()

    五、关闭文件：close()
        操作完成后必须关闭文件，释放资源

    六、更安全的写法：with 语句
        用 with 可以自动关闭文件，无需手动调用 close(),避免忘记关闭

    七、注意事项
        文件路径：如果文件不在当前目录，需要写完整路径（例如 C:/folder/file.txt）。
        文件不存在：用 r 或 r+ 模式打开不存在的文件会报错，用 w 或 a 则会创建新文件。
        编码问题：处理中文时可能需要指定编码，例如 open("file.txt", "r", encoding="utf-8")
        复制文件内容：读取 文件1 的内容，写入到 文件2
"""


# 一、打开一个文件
file = open("test.txt", "r")  # 打开名为 test.txt 的文件（只读模式）


# 二、读取文件内容
# 1.读取全部内容：read()
# content = file.read()  # 读取全部内容为一个字符串
# print(content)

# 2.逐行读取：readline()
# line = file.readline()  # 读取一行内容（包括换行符 \n）
# while line:
#     print(line.strip())  # 用 strip() 去掉换行符
#     line = file.readline()

# 3.读取所有行：readlines()
lines = file.readlines()  # 返回一个列表，每行是列表的一个元素
for line in lines:
    print(line.strip())


file.close()  # 关闭文件


# 四、写入文件内容
file = open("test.txt", "w")  # 写入模式（覆盖原有内容）
# 1.写入字符串：write()
# file.write("hello,python!\n")  # \n 表示换行
# file.write("这是第二行")
# file.write("这是第三行")

# 2.写入多行：writelines()
lines = ["hello\n", "hi", "haha"]
file.writelines(lines)  # 将一个字符串列表写入文件

# 五、关闭文件：close
file.close()

# 六、更安全的写法：with 语句，用with可以自动关闭文件，无需手动调用 close(),避免忘记关闭
with open("test.txt", "a", encoding="utf-8") as file:
    file.write("哈哈")
